﻿using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.Xml.Serialization;

namespace Shop.BSL.DataContract
{
    [DataContract(Namespace = "http://shop.hanoitown.com")]
    public class Order
    {
        // Properties
        [DataMember]
        public int AccountId { get; set; }
        [DataMember]
        public string AdditonalInstructions { get; set; }
        [DataMember]
        public string BillingCity { get; set; }
        [DataMember]
        public string BillingCompanyName { get; set; }
        [DataMember]
        public string BillingCountryCode { get; set; }
        [DataMember]
        public string BillingEmailId { get; set; }
        [DataMember]
        public string BillingFirstName { get; set; }
        [DataMember]
        public string BillingLastName { get; set; }
        [DataMember]
        public string BillingPhoneNumber { get; set; }
        [DataMember]
        public string BillingPostalCode { get; set; }
        [DataMember]
        public string BillingStateCode { get; set; }
        [DataMember]
        public string BillingStreet { get; set; }
        [DataMember]
        public string BillingStreet1 { get; set; }
        [DataMember]
        public string CouponCode { get; set; }
        [DataMember]
        public string Custom1 { get; set; }
        [DataMember]
        public string Custom2 { get; set; }
        [DataMember]
        public string Custom3 { get; set; }
        [DataMember]
        public decimal? DiscountAmount { get; set; }
        [DataMember]
        public decimal? GST { get; set; }
        [DataMember]
        public decimal? HST { get; set; }
        [DataMember]
        public DateTime OrderDate { get; set; }
        [DataMember]
        public int OrderId { get; set; }
        public List<OrderLineItem> OrderLineItems { get; set; }
        [DataMember]
        public ShippingTracking OrderShipping { get; set; }
        [DataMember]
        public int? OrderStateId { get; set; }
        [DataMember]
        public int? PaymentSettingId { get; set; }
        [DataMember]
        public int? PaymentStatusId { get; set; }
        [DataMember]
        public int? PaymentTypeId { get; set; }
        [DataMember]
        public int PortalId { get; set; }
        [DataMember]
        public string PromoDescription { get; set; }
        [DataMember]
        public decimal? PST { get; set; }
        [DataMember]
        public string PurchaseOrderNumber { get; set; }
        [DataMember]
        public DateTime? ReturnDate { get; set; }
        [DataMember]
        public decimal? SalesTax { get; set; }
        [DataMember]
        public string ShipCity { get; set; }
        [DataMember]
        public string ShipCompanyName { get; set; }
        [DataMember]
        public string ShipCountryCode { get; set; }
        [DataMember]
        public string ShipEmailId { get; set; }
        [DataMember]
        public string ShipFirstName { get; set; }
        [DataMember]
        public string ShipLastName { get; set; }
        [DataMember]
        public string ShipPhoneNumber { get; set; }
        [DataMember]
        public decimal? ShippingCost { get; set; }
        [DataMember]
        public int? ShippingId { get; set; }
        [DataMember]
        public string ShipPostalCode { get; set; }
        [DataMember]
        public string ShipStateCode { get; set; }
        [DataMember]
        public string ShipStreet { get; set; }
        [DataMember]
        public string ShipStreet1 { get; set; }
        [DataMember]
        public string StoreName { get; set; }
        [DataMember]
        public decimal? SubTotal { get; set; }
        [DataMember]
        public decimal? TaxCost { get; set; }
        [DataMember]
        public decimal Total { get; set; }
        [DataMember]
        public string TransactionId { get; set; }
        [DataMember]
        public decimal? VAT { get; set; }

        public Order(){}
    }
}
